home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
networking
/
ip
/
ka9q
/
alpha.arc
/
PKTDRVR.H
< prev
next >
Wrap
C/C++ Source or Header
|
1988-07-11
|
2KB
|
73 lines
/* Packet driver interface classes */
#define ETHERNET 1
#define PRONET-10 2
#define IEEE8025 3
#define OMNINET 4
#define APPLETALK 5
#define SERIAL_LINE 6
#define STARLAN 7
#define ARCNET 8
/* Packet driver interface types (not a complete list) */
#define TC500 1
#define PC2000 10
#define WD8003 14
#define ANYTYPE 0xffff
/* Packet driver function call numbers. From Appendix B. */
#define DRIVER_INFO 1
#define ACCESS_TYPE 2
#define RELEASE_TYPE 3
#define SEND_PKT 4
#define TERMINATE 5
#define GET_ADDRESS 6
#define RESET_INTERFACE 7
#define SET_RCV_MODE 20
#define GET_RCV_MODE 21
#define SET_MULTICAST_LIST 22
#define GET_MULTICAST_LIST 23
#define GET_STATISTICS 24
/* Packet driver error return codes. From Appendix C. */
#define NO_ERROR 0
#define BAD_HANDLE 1 /* invalid handle number */
#define NO_CLASS 2 /* no interfaces of specified class found */
#define NO_TYPE 3 /* no interfaces of specified type found */
#define NO_NUMBER 4 /* no interfaces of specified number found */
#define BAD_TYPE 5 /* bad packet type specified */
#define NO_MULTICAST 6 /* this interface does not support multicast */
#define CANT_TERMINATE 7 /* this packet driver cannot terminate */
#define BAD_MODE 8 /* an invalid receiver mode was specified */
#define NO_SPACE 9 /* operation failed because of insufficient space */
#define TYPE_INUSE 10 /* the type had previously been accessed, and not released */
#define BAD_COMMAND 11 /* the command was out of range, or not implemented */
#define CANT_SEND 12 /* the packet couldn't be sent (usually hardware error) */
typedef union {
struct {
unsigned char lo;
unsigned char hi;
} byte;
unsigned short word;
} ureg;
#define CARRY_FLAG 0x1
struct pktdrvr {
int class; /* Interface class (ether/slip/etc) */
int intno; /* Interrupt vector */
short handle1; /* Driver handle(s) */
short handle2;
struct mbuf *buffer; /* Currently allocated rx buffer */
struct mbuf *rcvq; /* Receive queue */
unsigned rcvcnt; /* Number of packets on queue */
unsigned rcvmax; /* Maximum length of rcvq */
};
extern struct pktdrvr pktdrvr[];
#define PK_MAX 3
#define PKT_SIG "PKT DRVR" /* Packet driver signature */